/**
 * @param {number[]} nums
 * @return {number}
 */
var longestArithSeqLength = function (nums) {
  let map = new Map();
  map.set(0, new Map());
  const len = nums.length;
  let max = 0;
  for(let i = 1; i < len; i++) {
    let itemMap = new Map();
    map.set(i, itemMap);
    for(let j = 0; j < i; j++) {
      const item = nums[i] - nums[j];
      const mapJ = map.get(j);
      if(mapJ.has(item)) {
        itemMap.set(item, mapJ.get(item) + 1);
      } else {
        itemMap.set(item, 2);
      }
      max = Math.max(max, itemMap.get(item));
    }
  }
  return max;
};

longestArithSeqLength([24,13,1,100,0,94,3,0,3])